Electronic document for describing a computer service

ABSTRACT

An electronic document for describing a service proposed by a server computer of a communication network, comprises a first part adapted to describe messages exchanged between computers of the communication network and a second part adapted to comprise information relating to the transmission of messages over the communication network.  
     The second part comprises two sub-parts, a first sub-part being adapted to comprise information on a format for representing messages and a second sub-part being adapted to comprise information on a communication protocol implemented for the transmission of the messages over the communication network.

[0001] The present invention relates to an electronic document fordescribing a computer service, that is to say a service proposed by aserver computer in a communication network.

[0002] It also relates to a method of transforming an electronicdocument for describing a computer service, as well as to a method ofcomparing services on the basis of an electronic document for describinga service in accordance with the invention.

[0003] In a complementary manner, it relates to a transforming deviceand comparing device adapted to implement the methods of transformingand comparing in accordance with the invention.

[0004] Within a computer communication network, server computers offerservices to other computers, called client computers, of thecommunication network.

[0005] Formerly, these services were accessible via proprietaryprotocols such as the CORBA protocol.

[0006] In order to facilitate the exchange of these services overcommunication networks where numerous computers may be connected, theservices are increasingly often accessible via one or more communicationprotocols conforming to standards.

[0007] By way of example, these communication protocols may be the HTTPprotocol (“HyperText Transfer Protocol”), or else the SMTP protocol(“Simple Mail Transfer Protocol”), this protocol generally being usedfor the exchange of electronic mail over the network, or else the FTPprotocol (“File Transfer Protocol”), a protocol generally used fortransferring files.

[0008] Moreover, the exchange of information between computers is itselfincreasingly often in accordance with standards, via for example theSOAP standard, corresponding to an application of the markup languageXML (“eXtended Markup Language”).

[0009] This SOAP standard enables computers to exchange information witheach other in the form of blocks.

[0010] In practice, a message or a SOAP document is constituted by anenvelope containing header blocks and body blocks.

[0011] The SOAP standard does not define a particular communicationprotocol, the SOAP messages in fact being able to be transmitted fromone computer to another over a communication network by one of thecommunication protocols already described.

[0012] There is generally an interface layer between the messagespresented in the SOAP format and the communication protocols, this layerbeing referred to as a “binding”.

[0013] When a service is offered by a server computer, it is generallydescribed in an electronic document.

[0014] Thus a WSDL (“Web Service Description Language”) document isknown which is particularly well-adapted to describe a service on acommunication network.

[0015] This WSDL document is itself an application of the markuplanguage XML.

[0016] A description of such a WSDL document may be found at the sitehaving the address http://www.w3.org/TR/2001/NOTE-wsdl-20010315.

[0017] The electronic service description document essentially comprisestwo parts. A first part is adapted to describe in an abstract manner themessages exchanged between computers of the communication network whenthe service concerned is provided.

[0018] This first part is generally termed “abstract part”.

[0019] A second part of the document is furthermore adapted to compriseinformation relating to the transmission of the messages over thecommunication network.

[0020] This second part, termed “concrete part”, thus makes it possibleto describe how a message is actually transmitted over the network.

[0021] In particular, this second part specifies the communicationprotocol which is actually used for the transfer of the messages, aswell as the format in which the data will be represented for theircommunication within the communication network.

[0022] In an electronic document of WSDL type, this information relatingto the transmission of the messages over the communication network isincorporated in a block delimited by “binding” tags making it possiblein the same block to define both the communication protocol and theformat of the different messages transmitted and received by the servercomputer of the communication network.

[0023] The actual representation used in such an electronic WSDLdocument makes it possible in a satisfactory manner to represent theservices offered by a server computer when the server computer onlyoperates according to a single communication protocol, associating forexample the SOAP format with the HTTP communication protocol.

[0024] However, such an electronic document for describing a WSDLservice is not adapted to be used in a communication network in whichthe client computers use different communication protocols, such thatthe server must itself propose services accessible according todifferent communication protocols.

[0025] This is because a server computer which offered exactly the sameservices in SOAP format via different protocols would, for eachprotocol, have to duplicate the information linked to the constructionof the corresponding SOAP envelope. Thus the electronic document fordescribing a WSDL service would have to contain a plurality of secondconcrete parts, identical for the essential portion of the data apartfrom the value given for example to an attribute making it possible todefine the protocol used to transport the messages.

[0026] Such an electronic service description document poses numerousproblems, in particular concerning possible incoherence between thedifferent service description documents. Furthermore, the updating ofsuch a document gives rise to additional work, since the file is largerand since it requires action at a plurality of places in the document tocarry out the update.

[0027] The object of the present invention is to overcome theaforementioned drawbacks and to provide an electronic servicedescription document making it possible by virtue of its format toprovide, in a simplified manner, the same service accessible usingdifferent communication protocols on the same server of a communicationnetwork.

[0028] To that end, the present invention relates to an electronicdocument for describing a service proposed by a server computer of acommunication network, comprising a first part adapted to describemessages exchanged between computers of the communication network and asecond part adapted to comprise information relating to the transmissionof messages over the communication network.

[0029] According to the invention, the second part comprises twosub-parts, a first sub-part being adapted to comprise information on aformat for representing messages and a second sub-part being adapted tocomprise information on a communication protocol implemented for thetransmission of the messages over the communication network.

[0030] Thus, by virtue of this partitioning of a second part of theelectronic document, it is possible to simplify the description of aservice by reducing the size of the files generated on a server thatimplements a plurality of communication protocols. The updating of thesefiles is also facilitated since the parts of the electronic document tobe updated are limited, independently of the communication protocols.The risks of error and of duplication are thus limited.

[0031] Furthermore, the comparison between such services becomes easiersince it is possible to compare the operations performed by thoseservices independently of the communication protocols used by theservers.

[0032] According to a preferred feature of the invention, the secondsub-part comprises a reference pointing to information included in thefirst sub-part of the service description document.

[0033] Thus, different communication protocols described in a secondsub-part may reference information included in a first sub-part,avoiding the duplication of that information for each of thecommunication protocols described in the service description document.

[0034] According to a preferred feature of the invention, when thatdocument is represented in a markup language, the first and the secondsub-parts are disjoint blocks, each block being bounded by apredetermined opening tag and closing tag.

[0035] By using a markup language of XML type in this way to present theservice description document, such as is the case for an electronicdocument of WSDL type, it is possible to identify each of the sub-partsby a tag having a predetermined name.

[0036] According to another preferred feature of the invention, when aservice comprises both first messages received by a server computer ofthe communication network and second messages sent by the communicationserver computer, the first sub-part is adapted to comprise informationon a format for representing the first messages received by the servercomputer and for representing the second messages sent by the servercomputer.

[0037] It is thus possible to use the same format for representingmessages received and sent by the computer, or else different formatschosen for example from a SOAP envelope, a URI electronic address or aMIME document.

[0038] According to another preferred feature of the invention, when aservice comprises both first messages received by the server computerand second messages sent by the server computer of the communicationnetwork, the second sub-part is adapted to comprise information on acommunication protocol implemented for receiving the first messages andfor sending the second messages.

[0039] It is thus possible to use the same communication protocol, orelse different communication protocols, for receiving the first messagesand sending the second messages.

[0040] According to another aspect of the invention, a method oftransforming an electronic document for describing a service proposed bya server computer of a communication network, comprising a first partadapted to describe messages exchanged between computers of thecommunication network and a second part adapted to comprise informationrelating to the transmission of messages over the communication network,comprises the following steps:

[0041] extracting the first part;

[0042] writing the first part in a transformed electronic document;

[0043] extracting information relating to a format for representing themessages;

[0044] writing the extracted information in a first sub-part of a secondpart of the transformed electronic document;

[0045] extracting information relating to a communication protocolimplemented for the transmission of the messages over the communicationnetwork; and

[0046] writing the extracted information in a second sub-part of thesecond part of the transformed electronic document.

[0047] This method automatically enables the generation, from anelectronic document for describing a service of WSDL type, of a documentin a new format in accordance with the invention, making it possible, aspreviously described, by virtue of the separation of the encodinginformation and the information concerning the communication protocol,to simplify the description of the services on a communication network.

[0048] In a complementary manner, the present invention relates to adevice for transforming an electronic document for describing a serviceproposed by a server computer of a communication network, comprising afirst part adapted to describe messages exchanged between computers ofthe communication network and a second part adapted to compriseinformation relating to the transmission of messages over thecommunication network, comprising:

[0049] means for extracting the first part;

[0050] means for writing the first part in a transformed electronicdocument;

[0051] means for extracting information relating to a format forrepresenting the messages;

[0052] means for writing the extracted information in a first sub-partof a second part of the transformed electronic document;

[0053] means for extracting information relating to a communicationprotocol implemented for the transmission of the messages over thecommunication network; and

[0054] means for writing the extracted information in a second sub-partof the second part of the transformed electronic document.

[0055] According to a third aspect of the invention, a method ofcomparing services based on an electronic service description documentaccording to the invention comprises the following steps:

[0056] identifying second sub-parts in the electronic document, pointingto the same first sub-part of a second part of said document; and

[0057] displaying the information relating to the communication protocolincluded in each identified second sub-part.

[0058] It is thus possible on the basis of a service descriptiondocument in accordance with the invention to identify for the sameservice the communication protocols that are accessible on thecommunication network.

[0059] In a complementary manner, the present invention relates to adevice for comparing a service on the basis of an electronic servicedescription document in accordance with the invention, comprising:

[0060] means for identifying second sub-parts in the electronicdocument, pointing to the same first sub-part of a second part of saiddocument; and

[0061] means for displaying the information relating to thecommunication protocol included in each identified second sub-part.

[0062] The devices for transforming and comparing have similaradvantages and features to the transforming method and the comparingmethod which they implement.

[0063] The present invention further comprises a fixed or partially ortotally removable means for information storage, readable by a computersystem, and which is adapted to store an electronic service descriptiondocument in accordance with the invention.

[0064] It also relates to a computer and to a communication network thatare adapted to implement the transforming method and/or the comparingmethod according to the invention.

[0065] The present invention furthermore relates to a means forinformation storage, possibly totally or partially removable, that isreadable by a computer system, comprising instructions for a computerprogram adapted to implement the method of transforming an electronicdocument and/or the comparing method according to the invention, whenthat computer program is loaded and executed by the computer system.

[0066] Finally, the present invention also relates to a computer programwhich can be read by a microprocessor, comprising portions of softwarecode adapted to implement the transforming and/or comparing methodsaccording to the invention, when said computer program is loaded andexecuted by the microprocessor.

[0067] Further particularities and advantages of the invention willemerge from the following description.

[0068] In the accompanying drawings, given by way of non-limitingexample:

[0069]FIGS. 1, 2, and 3 illustrate different configurations of acommunication network in which a server computer is adapted to proposeone or more services to client computers;

[0070]FIGS. 4a, 4 b and 4 c are algorithms illustrating the method oftransforming an electronic service description document in accordancewith the invention;

[0071]FIG. 5 is an algorithm illustrating the method of comparing aservice on the basis of an electronic service description document inaccordance with the invention; and

[0072]FIG. 6 is a block diagram illustrating a device adapted toimplement the transforming and comparing methods in accordance with theinvention.

[0073] In FIG. 1 a first type of communication network has beenillustrated in which a client computer C1 is adapted to communicate witha server computer S1.

[0074] In particular, in this type of communication network, the servercomputer S1 offers services to a client computer C1.

[0075] In this embodiment, these services are accessible via acommunication protocol in accordance with a standard, SOAP 1.2, whichmay be consulted at the electronic addresshttp://www.w3.org/TR/2002/ND-soap12-part1-20020626.

[0076] In this communication protocol, a SOAP envelope defining themessage to be transmitted is in fact transmitted over the communicationnetwork via the communication protocol HTTP.

[0077] A SOAP service is in general described by a WSDL document, in alanguage specially adapted to the description of such a service.

[0078] A WSDL document contains principally two parts. A first part,called the abstract part, describes in an abstract manner the messageswhich are exchanged between computers of the communication network onthe implementation of the service. A second part is adapted to compriseconcrete information, defining the transmission of the messages over thecommunication network.

[0079] The first part is itself divided into three sub-parts.

[0080] The first sub-part of this first part contains declarations oftypes, enabling the abstract structure of the messages to be described.These types are then referenced in the second sub-part of the first partof the WSDL document.

[0081] The declaration of these types is generally achieved by means oftags <types> . . . </types>.

[0082] This declaration of types is well-known in documents written inXML language and it is not essential for the understanding of theinvention to describe the types used in more detail.

[0083] The second sub-part of the first part of the document containsdeclarations of elementary messages. It thus defines the messages whichwill be exchanged between the computers on the implementation of theservice, without precisely describing the content or sequence.

[0084] By way of example, and solely to facilitate the understanding ofthe present invention, the following three messages may be exchangedbetween the computers C1 and S1. This second sub-part does not definethe links that exist between these different messages.

[0085] a. The first message corresponds to a request to obtain thequantity of a product in stock. The product is identified by itsinventory number (“Part Number”): <messagename=“getQuantityInStockInput”> <part name=“PartNumber” /> </message>

[0086] b. The second message conveys the available quantity of a productcurrently in stock: <message name=“getQuantityInStockOutput”> <partname=“PartNumber” /> <part name=“QuantityActuallyInStock” /> </message>

[0087] c. The third message corresponds to a request to update aquantity of product in stock: <message name=“setQuantityInStockInput”><part name=“PartNumber” /> <part name=“NewQuantityInStock” /> </message>

[0088] A third sub-part of the first part of a WSDL document makes itpossible to group together the elementary messages thus defined in thetwo first sub-parts in logic operations.

[0089] An operation may be considered as an elementary service, thelatter itself being implemented by one or more messages.

[0090] In the example below, the first two elementary messagesintroduced above are grouped together in the same logic operation(“getQuantityInStock”). This operation makes it possible to obtain thequantity of product currently available.

[0091] Furthermore, the elementary message “getQuantityInStocklnput” isdeclared as being of request type (“input”), and the elementary message“getQuantityInStockOutput” as being of response type (“output”).Finally, the messages are linked as one being the response to the otherand being grouped together in the same operation, and being placed inthe order “input”, then “output”.

[0092] In addition, a second logic operation (“setQuantityinStock”) isdeclared as being constituted by a single request message“setQuantityInStockInput”: <portType name=“stockMgt”> <operationname=“getQuantityInStock”> <input message=“getQuantityInStockInput”/><output message=“getQuantityInStockOutput”/> </operation> <operationname=“setQuantityInStock”> <input message=“setQuantityInStockInput”/></operation> </portType>

[0093] Clearly, more sophisticated forms of operations, consisting of acomplex set of exchanges of messages, could be described in thislanguage.

[0094] This first part of the WSDL document thus makes it possible todefine the type, content and order of the messages exchanged betweencomputers of the network on the implementation of a service proposed bythe server computer S1.

[0095] The WSDL document further comprises, as explained previously, asecond part which makes it possible to specify which protocol isactually used to transmit the messages and what form of encoding orrepresentation format is used to represent these data in a form adaptedto the communication network.

[0096] Taking the preceding example again, this second part of a WSDLdocument may be presented in the following manner: <bindingname=“stockMgtSoap” type=“stockMgt”> <soap:bindingtransport=“http://schemas.xmlsoap.org/soap/http” <operationname=“getQuantityInStock”> <input> <soap:body part=“PartNumber”/></input> <output> <soap:body part=“PartNumber”/> <soap:bodypart=“QuantityActuallyInStock”/> </output> </operation> <operationname=“setQuantityInStock”> <input> <soap:body part=“PartNumber”/><soap:body part=“NewQuantityInStock”/> </input> </operation> </binding>

[0097] This second part of the WSDL document thus indicates inparticular that the elementary messages defined in the first part are inSOAP format; this is indicated by presence in a number of places in thissecond part of the prefix or namespace defined by the term “SOAP:”.

[0098] For all the operations defined in this second part, thetransmission protocol of the messages will be the HTTP protocol. Thisprotocol is indicated in particular by the attribute “transport” of thetag “soap:binding”.

[0099] Furthermore, this second part specifies that for the requestmessage, defined by the tag “input” the SOAP envelope will contain in ablock of the body the part number “Part Number” of the product desired.

[0100] For the response message, defined by the tag “output” the SOAPenvelope will contain, in two body blocks, the part number of theproduct as well as the quantity of product available.

[0101] Such an electronic service description document makes it possibleto satisfactorily represent the services offered by the server S1 ofFIG. 1.

[0102] This is because, in this case, the server S1 only offers itsservices through the intermediary of a single protocol, combining a SOAPenvelope with the HTTP communication protocol.

[0103] However, such an electronic description document is not adaptedto describe a service provided by a second server S2 as illustrated inFIG. 2.

[0104] This is because, in this second server S2, the same SOAP envelopemay be conveyed equally by different transport protocols, definedearlier, such as the HTTP, SMTP or FTP protocols.

[0105] The server S2 thus offers exactly the same SOAP serviceaccessible via different communication protocols which may be adapted tocertain clients.

[0106] In the example of FIG. 2, in addition to the first client C1which is identical to that described earlier with reference to FIG. 1,the communication network also comprises a second client C2 which isadapted to communicate over the communication network not only via theHTTP protocol but also via the SMTP protocol.

[0107] Similarly, the document described previously does not applyeither in a network as illustrated in FIG. 3 in which the communicationprotocols such as HTTP or FTP, or possibly SMTP, are directly used,without the intermediary of a SOAP envelope.

[0108] If it were to be desired to make such an electronic descriptiondocument compatible with the different communication networks describedin FIGS. 1, 2 and 3, the WSDL document would have to comprise aplurality of second parts defined by a “binding” tag. These second partswould comprise numerous items of information in common, only the type ofprotocol used (for example via the attribute “transport” of the“soap:binding” tag) being modified.

[0109] Such a description document, in addition to its excessive sizedue to the redundancy of the information written in its second concretepart, leads to the risk of incoherency and error at the time of itsgeneration and is relatively fastidious to formulate and update.

[0110] In order to overcome these drawbacks, according to one of itsaspects the invention provides a method of transforming such a WSDLdocument as described in FIGS. 4a, 4 b and 4 c.

[0111] The method of transforming an electronic WSDL document aspreviously described comprises firstly a step S11 of reading thedocument.

[0112] This WSDL document being written in a markup language of XMLtype, a step of parsing and of constructing a tree S12 makes it possibleto represent the document in hierarchical form, each node of theconstituted tree thus corresponding to a tag of the XML document.

[0113] An extracting step S13 makes it possible to extract first of allthe first part of the document as described earlier. That first part iswritten in a writing step S14 in the transformed electronic document.

[0114] That first part, corresponding to the abstract part of the WSDLdocument, is not modified in the transformed electronic document and isin reality simply copied.

[0115] Next in an extracting step S15 the second part of the WSDLdocument is extracted which corresponds to the concrete part of thedocument.

[0116] In practice, extraction is made of the first <binding> tag inwhich is stored the information on the transmission of the messages overthe communication network, by identifying its name.

[0117] A transforming step S16 is next adapted to modify the structureof the information included in that <binding> tag.

[0118] This transforming step S16 is detailed in FIG. 4b.

[0119] An extracting step S17 is adapted to extract the informationrelating to the format of representing the messages, that is to sayrelating to the encoding of the information.

[0120] A test step S18 makes it possible to verify if that type ofencoding has already been dealt with. In the negative, a writing stepS19 is then implemented to write a <messageBinding> opening tag in thetransformed description document.

[0121] This tag thus makes it possible to define a first sub-part in thesecond part of the transformed document, adapted to comprise theinformation relating to the format of the messages.

[0122] Further to that opening tag, a writing step S20 is implemented inorder to insert the encoding information extracted earlier.

[0123] An adding step S21 makes it possible to add the encoding to atable of the forms of encoding used at the test step S18 to determinewhether the encoding has already been dealt with.

[0124] Next, a writing step S22 makes it possible to delimit thatsub-part by a </messageBinding> closing tag.

[0125] If, at the issue of the test step 18, the encoding has alreadybeen dealt with, that is to say that the encoding information has beenstored in the table at the adding step S21, an obtaining step S23 makesit possible to obtain the information stored in the corresponding<messageBinding> tag.

[0126] An extracting step S24 is next implemented on the XML document totransform in order to identify the information relating to thecommunication protocol, that is to say in the above example theinformation relating to the HTTP protocol for transfer of messages overthe communication network.

[0127] A writing step S25 makes it possible as previously to introduce anew <protocolBinding> opening tag, adapted to delimit that secondsub-part of the second part of the transformed description document.

[0128] An adding step S26 makes it possible to include after thepreceding opening tag a reference to the associated <messageBinding>tag.

[0129] That reference may be made by virtue of the “binding” pointerenabling the name of the <messageBinding> tag to be referenced.

[0130] A writing step S27 is next adapted to insert within that tag theprotocol information identified previously.

[0131] This writing step S27 is detailed in FIG. 4c.

[0132] It comprises first of all a step S28 of writing a <protocole/>tag.

[0133] An obtaining step S29 makes it possible to obtain the value ofthe transport attribute used in the WSDL document to transform.

[0134] Here, the value of that attribute is equal tohttp://schemas.xmlsoap.org/soap/http.

[0135] An obtaining step S30 makes it possible to obtain a new value forthat attribute in a look-up table.

[0136] For the protocols already known, the following correspondencesare used.

[0137] http://schemas.xmlsoap.org/soap/http->

[0138] http://www.w3.org/2002/06/soap/bindings/HTTP

[0139] http://schemas.xmlsoap.org/soap/smtp/->

[0140] http://www.example.org/2002/02/soap/bindings/Email

[0141] http://schemas.xmlsoap.org/soap/ftp/->

[0142] http://www.crf.canon.fr/2002/05/soap/bindings/FTP

[0143] For the other protocols, the table must be up to date when thoseprotocols are made available to the users.

[0144] Here the new value corresponding to the preceding attribute isthe protocol http://www.w3.org/2002/06/soap/bindings/HTTP, whichcorresponds to the HTTP protocol implemented with the SOAP standard.

[0145] This protocol name is thus written in the <protocole> tag in awriting step S31.

[0146] A selection step S32 make it possible to select a firstoperation, such as the operation “getQuantityInStock”.

[0147] A test step S33 makes it possible to verify if that operationcontains messages of <output> type, that is to say messages requiring aresponse.

[0148] In the affirmative, for example for the operation“getQuantityinStock”, a writing step S34 is adapted to write an<operation> tag.

[0149] A writing step S35 is adapted to write an MEP (“Message ExchangePattern”) functionality, by use of a <mep> tag.

[0150] This <mep> tag is used to define a pattern for message exchangebetween a plurality of SOAP nodes. Here, this pattern is ofrequest-response type such that a first computer sends a message to asecond computer which sends it back a response message.

[0151] This type of <mep> tag uses the MEP concept defined by SOAP ofwhich a detailed description may be obtained at the electronic addresshttp://www.w3.org/TR/2002/WD-soap12-part1-20020626/#soapmep.

[0152] A writing step S36 is furthermore adapted to add anotherfunctionality or <feature> associated with the communication protocol.

[0153] This <feature> functionality is named here “web-method” by way ofexample, having a “Method” property of which the value may for examplebe set to GET.

[0154] The identifier of the “web-method” feature ishttp://www.w3.org/2002/06/soap/features/web-method.

[0155] Similarly, this <feature> tag uses the feature concept defined bySOAP of which a detailed description may be obtained at the electronicaddress http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#soapfeature.

[0156] It is not necessary to give more detail of the use of theseparticular tags for the understanding of the invention.

[0157] In a nutshell, here, it is indicated that the protocol uses theHTTP GET method.

[0158] The insertion of the information relating to that operation isterminated by a writing step S37 making it possible to writean<operation/> closing tag.

[0159] If at the issue of test S33, the operation to process does notcontain a response message of type <output>, such as is the case for theoperation “setQuantityInStock”, the information relating to the protocolis modified in the following manner. A writing step S38 makes itpossible to write an <operation> tag as in the preceding writing stepS34.

[0160] A step S39 of writing an MEP functionality is also implemented.Here, the value of this <mep> tag is equal to “one way” since thatoperation only requires the implementation of a single message requiringno response.

[0161] The identifier of the one-way MEP ishttp://www.crf.canon.fr/2002/05/soap/mep/one-way.

[0162] As previously, a writing step S40 may be implemented to add<feature> functionalities to the communication protocol.

[0163] Here, By way of example, the name of that functionality is also“web-method”, having a property “Method” of which the value is set toPUT.

[0164] A writing tag S41 is next implemented in a similar manner to thewriting step S37 to insert an<operation/> closing tag making it possibleto delimit the information relating to the communication protocol usedfor that operation.

[0165] In a test step S42 it is verified if all the operations have beenprocessed. In the negative, a selecting step S43 makes it possible toselect the following operation and the set of steps S33 to S42 isreiterated for that operation.

[0166] When all the operations have been processed, this step S27 ofwriting the information relating to the protocol is terminated.

[0167] Returning to FIG. 4b, a writing step S43 is adapted to write a</protolBinding> closing tag making it possible to close that secondsub-part of the message comprising the information relating to thecommunication protocol.

[0168] This step S16 of transforming a <binding> tag is thus terminated.

[0169] Returning to FIG. 4a, in a test step S44 it is verified if thattag so processed corresponds to the last <binding> tag.

[0170] In the negative, a following <binding> tag is extracted and theset of steps S16 to S44 are reiterated on that tag.

[0171] When all the <binding> tags have been processed, the method oftransforming the WSDL document is terminated.

[0172] The transformation of the electronic WSDL description documentmakes it possible to obtain a document of which the second part appearsas follows: <messageBinding name=“stockMgtSoap”type=“stockMgt”><operation name=“getQuantityInStock”> <input> <soap:urlEncodedpart=“PartNumber”/> </input> <output> <soap:body part=“PartNumber”/><soap:bodypart=“QuantityActuallyInStock” /> </output> </operation><operation name=“setQuantityInStock”> <input> <soap:bodypart=“PartNumber”/> <soap:body part=“NewQuantity”/> </input ></operation> </messageBinding> <protocolBindingname=“stockMgtSoapHttp”binding=“stockMgtSoap”> <protocol name=“w3c-soap12-http11”/> <operationname=“getQuantityInStock”> <mep name=“request-response”/> <featurename=“web-method”> <property name=“webmeth:Method” value=“GET”/></feature> </operation> <operation name=“setQuantityInStock”> <mepname=“one-way”/> <feature name=“web-method”> <propertyname=“webmeth:Method” value=“PUT”/> </feature> </operation></protocolBinding>

[0173] This second document part is thus partitioned into two sub-parts,a first sub-part comprising the information relating to the format forrepresenting the messages and the second sub-part comprising theinformation on the communication protocol implemented for thetransmission of the messages over the communication network.

[0174] When as here the document is represented in a markup languagesuch as XML, the sub-parts are disjoint blocks each bounded by anopening tag and a closing tag. Thus the first sub-part is included inthe “messageBinding” tag and the second sub-part is included in the“protocolBinding” tag.

[0175] The second sub-part comprises a reference identifying the firstsub-part, by means of the “binding” pointer. Here the value of the“binding” pointer is “StockMgtSoap” which corresponds to the name of the“messageBinding” tag, described in the first sub-part.

[0176] Furthermore, in the preceding example, the message for requestingthe “getQuantityinStock” operation, i.e. a message transmitted by theserver computer, is encoded in the form of a URI electronic address.

[0177] The response message of this same operation, i.e. a messagereceived by the server computer of the communication network, is encodedin the form of a SOAP envelope.

[0178] Thus, the first sub-part of the document may comprise informationin a different representation format depending on whether the message isreceived by the server computer or transmitted by that server computer.

[0179] In the second sub-part of the transformed service descriptiondocument, only the information relating to the communication protocolare described, independently of the type of encoding chosen anddetermined in the first sub-part of the second part of the document.

[0180] In this example, the protocol corresponds to the HTTPcommunication protocol via the SOAP application layer.

[0181] This communication protocol is in this example identical for allthe operations, as well as for the messages transmitted and the messagesreceived by the server.

[0182] By virtue of this structure of the document, when it is desiredto change solely the communication protocol, for example on implementinga service by the second server S2 illustrated in FIG. 2, it suffices tosolely modify this second sub-part of the message defined by the“protocol Binding” tag.

[0183] By way of example, this second part of the service descriptiondocument may appear in the following manner when the SMTP protocol hasbeen chosen to use for the messages transmitted by the server computerand the HTTP protocol for the messages received by the server computer.<protocolBinding name=“stockMgtSoapEmailInHttpOut”binding=“stockMgSoap”> <operation name=“getQuantityInStock”> <mepname=“request-response”/> <input> <protocol name=“ietf-http11”/></input> <output> <protocol name=“ietf-email”/> </output> </operation></protocolBinding>

[0184] These protocols are thus defined via the “protocol Binding” tagby elementary messages since the protocols for the outgoing and returnof the messages are different.

[0185] On the other hand, the MEP model is specified at the level ofeach operation.

[0186] In the same way, the associated protocol may be defined for othertypes of operation, for example for the updating operation. By way ofexample, the SMTP protocol may be used such that the second sub-part ofthe description document appears in the following manner:<protocolBinding name=“stockMgtSoapEmail” binding=“stockMgtSoap”><protocol name=“w3c-soap12-email”/> <operationname=“setQuantityInStock”> <mep name=“one-way”/> <input> <fieldname=“X-Mailer” value=“SOAP Email”> <parameter name=“version”value=“1.23”/> </field> </input> </operation> </protocolBinding>

[0187] In this example, the models of the MEP exchanges are of one-waytype, that is to say a request without response. This is because thisupdating operation does not require any response on the part of theclient computer.

[0188] Furthermore, in the preceding example, a protocol field “field”is used to define the value of a protocol header.

[0189] When a client computer generates a message based on the precedingWSDL document, this message must indicate the “X-mailer” field in thefollowing format:

[0190] “X-mailer: SOAP Email; version=1.23”

[0191] The main value of the “X-mailer” field is “SOAP Email” and theparameters of this field are defined by the “version” attribute of whichthe value is “1.23”.

[0192] Thanks to the separation of the second part of the descriptiondocument between a first part adapted to comprise the format informationof the messages and a second part comprising the protocol information,it is found that there is no duplication of information between theabove examples. This separation thus makes it possible to reduceduplication, and thus to reduce the size of the service descriptiondocument, to limit risks of error and to simplify the problems ofupdating the service description document.

[0193] Moreover, the comparison of a service procured by a servercomputer of a network becomes easier.

[0194] This is because it is easy to examine whether two operationshaving different protocols are compatible, since that will be the caseif these protocols point (i.e. use) the same representing the messagesdefined by the same “messageBinding” block.

[0195] In practice, as illustrated in FIG. 5, it is thus possible tocompare the services provided by a server computer on the basis of anelectronic service description document

[0196] This method of comparing comprises a step S50 of reading the WSDLdocument and a step S51 of parsing adapted to analyze the structure ofthe document and to construct the tree associated with that document aspreviously described.

[0197] An identification step S52 is adapted to identify the<protocolBinding> nodes which point to the same <messageBinding> node.

[0198] The second sub-parts pointing to the same first sub-part are thusidentified in the document.

[0199] The extraction step S53 is adapted to extract the first<protocolBinding> node identified.

[0200] A display step S54 is next adapted to display the informationrelating to the communication protocol included in that first<protocolBinding> tag.

[0201] A test step S55 makes it possible to verify if there is another<protocolBinding> node identified. In the affirmative, in an extractionstep S56 the following <protocolBinding> node is extracted and the stepS54 is reiterated, of displaying the protocol information in thatfollowing node.

[0202] When at the issue of the test step S55 all the nodes identifiedhave been processed, the method of comparing implemented on theelectronic service description document is terminated.

[0203] Although an embodiment has been described above in which thecommunication protocols are coupled with the SOAP standard of messagerepresentation, the present invention equally applies when protocolssuch as HTTP, FTP or SMTP are used directly, i.e. without the SOAPapplication layer.

[0204] An example of an electronic service description document is givenbelow for the “getQuantityinStock” operation. <messageBindingname=“stockMgtURI”type=“stockMgt”> <operation name=“getQuantityInStock”><input> <http:urlEncoded/> </input> <output> <mime:mimeXml part=“Body”/></output> </operation> </messageBinding> <protocolBindingname=“stockMgtHttp”binding=“stockMgtURI”> <protocol name=“ietf-http11”/><operation name=“getQuantityInStock”> <mep name=“request-response”/><feature name=“web-method”> <propertyname=“webmethod:Method”value=“GET”/> </feature> </operation></protocolBinding>

[0205] In this example, the first sub-part “messageBinding” comprisessolely the encoding information, to the exclusion of any information onthe communication protocol.

[0206] In this example, the message transmitted by the server computeris represented in the form of a URI address, whereas the messagereceived by the server computer is represented in the form of a MIMEdocument.

[0207] The communication protocol is defined within the second sub-partincluded in the “<protocolBinding>” tag, and is here by way of examplethe HTTP protocol.

[0208] As previously, the options linked to this communication protocoland introduced into the tags MEP and FEATURE are also specified for eachoperation.

[0209] In order to implement the transforming method described withreference to FIGS. 4a, 4 b and 4 c, a transforming device essentiallycomprises means for reading a document, means for parsing the documentin order to construct a tree representing the hierarchical structure ofthe document, as well as means for extracting and writing adapted toidentify different parts of the document and to write those parts in atransformed electronic document.

[0210] Similarly, a device for comparing adapted to implement thecomparing method described with reference to FIG. 5 comprises means forreading and parsing as previously described as well as means foridentifying the <protocolBinding> nodes pointing to the same<messageBinding> node, means for extracting these identified nodes andfor displaying the information relative to the communication protocolstored in each of these nodes.

[0211] These devices for transformation and comparison may beincorporated in a computer as illustrated in FIG. 6.

[0212] In particular, the different means identified above may beincorporated in a microprocessor 100, a read-only memory (or ROM) 101being adapted to store a program for transforming and/or comparing inaccordance with the invention.

[0213] Of course, these devices for transforming a document or comparinga service may be implemented in the same computer or else in differentstations of the communication network.

[0214] The random-access memory or RAM 102 is adapted to store inregisters the values modified on execution of the program fortransforming and comparing.

[0215] The microprocessor 100 is integrated into a computer which may beconnected to different peripherals and to other computers of thecommunication network 1 as illustrated in FIGS. 1 to 3. In particular,this computer corresponds to a server computer S1, S2, S3 of thesenetworks.

[0216] That computer S1, S2, S3 comprises in known manner acommunication interface 110 connected to the communication network 10 toreceive or transmit messages.

[0217] The computer further comprises means for storage of documents,such as a hard disk 106 or is adapted to cooperate by means of a diskdrive 107 (diskettes, compact discs or computer cards) with removabledocument storage means such as disks 700. These fixed or removablestorage means may comprise the code of the transforming or comparingmethod according to the invention.

[0218] They are also adapted to store an electronic service descriptiondocument as defined by the present invention.

[0219] As a variant, the program enabling the transforming or comparingdevice to implement the invention can be stored in the read only memory101.

[0220] As a second variant, the program can be received and stored asdescribed previously by means of the communication network 10.

[0221] The computer S1, S2, S3 also has a screen 103 which may forexample serve as an interface with an operator with the use of thekeyboard 104 or the mouse 105 or of any other means.

[0222] The central processing unit 100 (CPU) will then execute theinstructions relating to the implementation of the invention. Onpowering up, the programs and methods relating to the invention, storedin a non-volatile memory, for example the read-only memory 101, aretransferred into the random-access memory 102, which will then containthe executable code of the invention as well as the variables necessaryfor implementing the invention.

[0223] The communication bus 112 affords communication between thedifferent sub-elements of the computer 10 or connected to it.

[0224] The representation of the bus 112 is not limiting and inparticular the microprocessor 100 is able to communicate instructions toany sub-element directly or by means of another sub-element.

[0225] Naturally, numerous modifications can be made to the exampleembodiments described above without departing from the scope of theinvention.

1. An electronic document for describing a service proposed by a servercomputer of a communication network, comprising a first part adapted todescribe messages exchanged between computers of the communicationnetwork and a second part adapted to comprise information relating tothe transmission of said messages over the communication network,wherein said second part comprises two sub-parts, a first sub-part beingadapted to comprise information on a format for representing saidmessages and a second sub-part being adapted to comprise information ona communication protocol implemented for the transmission of saidmessages over the communication network.
 2. An electronic servicedescription document according to claim 1, wherein said second sub-partcomprises a reference pointing to information included in said firstsub-part.
 3. An electronic service description document according toclaim 1, said document being represented in a markup language, whereinsaid first and second sub-parts are disjoint blocks, each block beingbounded by a predetermined opening tag and closing tag.
 4. An electronicservice description document according to claim 1, wherein it isrepresented in a markup language such as XML.
 5. An electronic servicedescription document according to claim 1, in which first messagesreceived by the server computer of the communication network and secondmessages are sent by the server computer of the communication network,wherein said first sub-part is adapted to comprise information on aformat for representing said first messages received by the servercomputer and said second messages sent by the server computer.
 6. Anelectronic service description document according to claim 5, whereinthe format for representing said first messages received is differentfrom the format for representing said second messages sent by the servercomputer.
 7. An electronic service description document according toclaim 1, wherein the format for representing said messages may be chosenfrom among a SOAP envelope, a URI address or a MIME document.
 8. Anelectronic service description document according to claim 1, in whichfirst messages received by the server computer of the communicationnetwork and second messages are sent by the server computer, whereinsaid second sub-part is adapted to comprise information on acommunication protocol implemented for receiving said first messages andfor sending said second messages.
 9. An electronic service descriptiondocument according to claim 8, wherein the communication protocolimplemented for receiving said first messages is different from thecommunication protocol implemented for sending said second messages. 10.A method of transforming an electronic document for describing a serviceproposed by a server computer of a communication network, comprising afirst part adapted to describe messages exchanged between computers ofthe communication network and a second part adapted to compriseinformation relating to the transmission of said messages over thecommunication network, comprising the following steps: extracting saidfirst part; writing said first part in a transformed electronicdocument; extracting information relating to a format for representingthe messages; writing said extracted information in a first sub-part ofa second part of the transformed electronic document; extractinginformation relating to a communication protocol implemented for thetransmission of said messages over the communication network; andwriting said extracted information in a second sub-part of the secondpart of said transformed electronic document.
 11. A transforming methodaccording to claim 10, further comprising upstream and downstream ofsaid writing steps, steps of inserting an opening tag and a closing tagin the transformed electronic document.
 12. A method of comparingservices based on an electronic service description document accordingto claim 1, comprising the following steps: identifying second sub-partsin the electronic document, pointing to the same first sub-part of asecond part of said document; and displaying the information relating tothe communication protocol included in each identified second sub-part.13. A device for transforming an electronic document for describing aservice proposed by a server computer of a communication network,comprising a first part adapted to describe messages exchanged betweencomputers of the communication network and a second part adapted tocomprise information relating to the transmission of the messages overthe communication network, comprising: means for extracting said firstpart; means for writing said first part in a transformed electronicdocument; means for extracting information relating to a format forrepresenting said messages; means for writing said extracted informationin a first sub-part of a second part of the transformed electronicdocument; means for extracting information relating to a communicationprotocol implemented for the transmission of said messages over thecommunication network; and means for writing said extracted informationin a second sub-part of said second part of the transformed electronicdocument;
 14. A transforming device according to claim 13, furthercomprising means for inserting an opening tag and a closing tag in thetransformed electronic document respectively upstream and downstream ofsaid first part, of said first sub-part and of said second sub-part. 15.A device for comparing services based on an electronic servicedescription document according to claim 1, comprising: means foridentifying second sub-parts in the electronic document, pointing to thesame first sub-part of a second part of said document; and means fordisplaying the information relating to the communication protocolincluded in each identified second sub-part.
 16. A fixed or partially ortotally removable information storage means, readable by a computersystem, adapted to store an electronic service description document inaccordance with the claim
 1. 17. A computer, comprising means adapted toimplement a method of transforming an electronic document according toclaim
 10. 18. A computer, comprising means adapted to implement acomparing method according to claim
 12. 19. A communication network,comprising means adapted to implement a method of transforming anelectronic document according to claim
 10. 20. A computer programreadable by a microprocessor, comprising portions of software codeadapted to implement the method of transforming an electronic documentaccording to claim 10, when it is loaded and executed by themicroprocessor.
 21. A computer program readable by a microprocessor,comprising portions of software code adapted to implement the comparingmethod according to claim 12, when it is loaded and executed by themicroprocessor.